iT邦幫忙

2024 iThome 鐵人賽

DAY 23
0

Final:最終的

好希望今天就是鐵人賽的final

final可以用來修飾方法變數

class 前面加入final 後:此class 無法被繼承。例如:StringStringBufferStringBuilder

public final class A {}

💡 //不可以這樣寫,因為A已經使用final修飾,不可被繼承
// public class B extends A {} 

method 前面加入final 後:此方法不能被重寫(override)
例如:Object.getClass() ,在Java SE API中Object.getClass()是被這樣子寫的public final native Class<?> getClass(); ,當中native 代表的是去使用底層的CC++語法,並且使用此方法時在記憶體中是會放在Native Method Stack ,與一般方法放在Stack 不一樣。

public class A {
	public void method(){}
}

public class B extends A {
💡 //不可以這樣寫,因為A中的method已經使用final修飾,不可被重寫
	//public void method(){}
} 

變數前面加上final ,代表這個變數相當於是常量 ,不可以被更改,一般會建議全部使用大寫命名,並且若由兩個單詞以上組成時,會加上_ ,例如:MIN_BALANCE

類的屬性:

  • 在類中的屬性 使用final 時,可以在幾個地方賦值
    1. 宣告時賦值。
    2. 構造器中賦值(若有多個構造器時,必須每個構造器內都有)。
    3. 實例初始化區塊 中賦值。
  • 在參數前加上final
    1. 若是在方法中的變數前面,必須在使用該變數前 進行賦值,不然會報錯。
    2. 在方法的參數 前加上final ,代表在使用該方法時,就會為這個參數加上final ,所以在方法中是不能去修改這個參數的值。
  • 若是在靜態屬性 前面加上final 代表這個靜態屬性 等於全局常量 ,整個class 中只會有這一個。

上一篇
Day22-單例模式、初始化區塊
下一篇
Day24-抽象、abstract
系列文
前端工程師的java學習紀錄38
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言